package com.example.service;

import com.example.cac409club.result.RestResult;
import com.example.model.dos.ClubMemberDO;
import com.example.model.dto.ClubMemberDTO;
import com.example.model.query.ClubMemberQuery;

/**
 * <p>
 * 社团成员信息管理服务接口
 * </p>
 * @author 34448
 */
public interface ClubMemberService {

    /**
     * 新增社团成员
     * @param clubMemberDTO 社团成员信息
     * @return
     */
    RestResult<Boolean> addClubMember(ClubMemberDTO clubMemberDTO);

    /**
     * 编辑社团成员
     * @param clubMemberDTO 社团成员信息
     * @return
     */
    RestResult<Boolean> editClubMember(ClubMemberDTO clubMemberDTO);

    /**
     * 删除社团成员
     * @param clubMemberQuery 社团成员查询条件
     * @return
     */
    RestResult<Boolean> deleteClubMember(ClubMemberQuery clubMemberQuery);

    /**
     * 查询社团成员
     * @param clubMemberQuery 社团成员查询条件
     * @return
     */
    RestResult<ClubMemberDO> getClubMemberInfo(ClubMemberQuery clubMemberQuery);

    /**
     * 导入社团成员信息
     * @param filePath 文件路径
     * @return
     */
    RestResult<Boolean> importClubMemberInfo(String filePath);

    /**
     * 导出社团成员信息
     * @param filePath 文件路径
     * @return
     */
    RestResult<Boolean> exportClubMemberInfo(String filePath);

    /**
     * 上传社团成员照片
     * @param userId 用户ID
     * @param file 文件
     * @return
     */
    RestResult<Boolean> uploadClubMemberPhoto(Integer userId, MultipartFile file);

    /**
     * 上传社团成员证书
     * @param userId 用户ID
     * @param file 文件
     * @return
     */
    RestResult<Boolean> uploadClubMemberCertificate(Integer userId, MultipartFile file);
}